
(defmacro define-grammar (&rest grammar))

(define-grammar
    ;; rules

    (func-name :symbol)    

    (func :keyword)

  (type-spec :symbol)

  (var-name :symbol)

  ;; func-argument
  (func-argument
   (type-spec var-name))

  ;; forward functions expression
  (forward-func-expr
   (func func-name (:rest func-arglist)))

  ;; function

  ;; end of grammar
  )
